<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
                                             //地址连续，类型相同，数组不能越界
                                             //js数组与c、java等强类型语言的区别：1.类型可以不同 2.地址可以不连续 3.相当于Java的list，Python元组
                                             //数组的定义：1.使用中括号[]，空数组
    var a=3;
    console.log(a);
    var b=4;
    console.log(b); // undefined,为什么？
    // 变量提升，使用var关键字定义变量，无论在什么位置，JavaScript引擎，首先获取var
    //关键字定义的变量，变量不进行赋值


    var arr01=[];
    //使用下标进行选择值，下标从0开始
    arr01[0]='张三'
    arr01[1]='李四'
    console.log(arr01[0]);
    console.log(arr01[1]);
    //定义一个数组，长度为10，值10-100之间的随机数
    console.log(
        10+Math.floor(Math.random()*90)
        );
        var arr02=[]
        for(i=0;i<10;i++){
            arr02[i]=10+Math.floor(Math.random()*90)
        }
        console.log(arr02);



      //  var arr03=[3,10,6,2];
        //遍历数组
      //  for (var i=0;i<arr03.length-1;i++){
            //根据外层for循环的i，逐渐减少内层for循环的次数
       //     for(var j=0;j<arr03.length-1-i;j++){
         //       if(arr03[j]>arr03[j+1]){
           //         var num=arr03[j];
             //       arr03[j]=arr03[j+1];
               //     arr03[j+1]=num;
               // }
          //  }
      //  }
       // console.log(arr03);

        //1.气泡上浮
        
        //趟，N个数需要N-1趟
        //for(i=0;i<arr02.length-1;i++){
          //  for(j=arr02.length-1;j>=i;j--){//j>=0会变成无效循环
             //   if(arr02[j]<arr02[j-1]){
                    //交换arr02[j]与arr02[j-1]
            //     var num=arr02[j];
             //       arr02[j]=arr02[j-1];
               //     arr02[j-1]=num;
                //}
          // }
       // }
       // console.log(arr02);

        //石头下沉
   //     sign=false
       // var count=0;
     //  for(i=0;i<arr02.length-1;i++){  
            //sign=false
            //for(j=0;j<arr02.length-i;j++){
                //if(arr02[j]>arr02[j+1]){
                   // temp=arr02[j];
                    //arr02[j]=arr02[j+1];
                  //  arr02[j+1]=temp;
                //    sign=true;
              //  }
            //    count++;
          // }
          //  if(!sign)
          //break;
        //}
        //console.log(arr02);

        //选择排序
    //    for(i=0;i<arr02.length-1;i++){
      //      minPos=i+1;
        //    for(j=i+1;j<arr02.length;j++){
          //      if(arr02[j]<arr02[minPos]) minPos=j;
                
          //  }
            //交换
         //   if(arr02[i]>arr02[minPos]){
         //       temp=arr02[i];
           //     arr02[i]=arr02[minPos];
            //    arr02[minPos]=temp;
           // }
       // }
       //插入排序
       for (i=1;i<arr02.length;i++){
        //保存当前值
        current=arr02[i];
        //为当前值空出位置，需要对已排序序列进行移位
        //i为需要插入的值，已排序序列从i-1开始
        //移位的条件是:终止条件，j>0,arr02[j]>current
        //for(j=i-1;j>0 && arr02[j]>current;j--){
         //   arr02[j+1]=arr02[j];
        //}
        j=i-1;
        while(j>=0 && arr02[j]>current){
            arr02[j+1]=arr02[j];
            j--;
        }
        //把current值放到指定位置
        //如果为-1，表示待插入的元素是第一个元素
        arr02[j+1]=current;
       }
        console.log(arr02);
        //console.log(count);                       //需要对已排序序列进行移位

        //使用Array来定义数组
        var arr04=Array(1,3,5,7,9,11,13);
        console.log(arr04);
        var arr05=Array(15);
        console.log(arr05);

        
        </script>
</body>
</html>